Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


.github/workflows/frontend-build.yml 84617fee19f9f4dc0ee8ef84a5022ac093d79854 (84617fee) Text, 4.32 KB

T8b949e# Reusable workflow that builds the Vite frontend, bundles the offline Reticulum
T8b949e# manual and repository wheels into meshchatx/public/. Other workflows invoke this once
T8b949e# via workflow_call and download the resulting artifact instead of
T8b949e# re-running the same node/pnpm pipeline on every job.
T8b949e#
T8b949e# Pinned first-party actions (bump tag and SHA together when upgrading):
T8b949e# actions/checkout@v6.0.1 8e8c483db84b4bee98b60c0593521ed34d9990e8
T8b949e# actions/setup-python@v6.2.0 a309ff8b426b58ec0e2a45f0f869d46889d02405
T8b949e# actions/setup-node@v6.1.0 395ad3262231945c25e8478fd5baf05154b1d79f
T8b949e# actions/upload-artifact@v5.0.0 330a01c490aca151604b8cf639adc76d48f6c5d4

Tff7b72nameTb4b4b4: Ta5d6ffFrontendTa5d6ff Ta5d6ffbuild

Tff7b72onTb4b4b4:
Tff7b72workflow_callTb4b4b4:
Tff7b72inputsTb4b4b4:
Tff7b72artifact_nameTb4b4b4:
Tff7b72descriptionTb4b4b4: Tb4b4b4>Tb4b4b4-
Tff7b72Name of the artifact uploaded to the calling workflow run.
Tff7b72Defaults to meshchatx-frontend-<run_id>-<run_attempt>.
Tff7b72requiredTb4b4b4: Ta5d6fffalse
Tff7b72typeTb4b4b4: Ta5d6ffstring
Tff7b72defaultTb4b4b4: Ta5d6ff"Ta5d6ff"
Tff7b72retention_daysTb4b4b4:
Tff7b72descriptionTb4b4b4: Ta5d6ffArtifactTa5d6ff Ta5d6ffretentionTa5d6ff Ta5d6ffinTa5d6ff Ta5d6ffdays.
Tff7b72requiredTb4b4b4: Ta5d6fffalse
Tff7b72typeTb4b4b4: Ta5d6ffnumber
Tff7b72defaultTb4b4b4: Ta5d6ff1
Tff7b72node_versionTb4b4b4:
Tff7b72descriptionTb4b4b4: Ta5d6ffNode.jsTa5d6ff Ta5d6ffmajorTa5d6ff Ta5d6ffversionTa5d6ff Ta5d6ffusedTa5d6ff Ta5d6ffforTa5d6ff Ta5d6fftheTa5d6ff Ta5d6ffbuild.
Tff7b72requiredTb4b4b4: Ta5d6fffalse
Tff7b72typeTb4b4b4: Ta5d6ffstring
Tff7b72defaultTb4b4b4: Ta5d6ff"Ta5d6ff24Ta5d6ff"
Tff7b72pnpm_versionTb4b4b4:
Tff7b72descriptionTb4b4b4: Ta5d6ffpnpmTa5d6ff Ta5d6ffversionTa5d6ff Ta5d6ffactivatedTa5d6ff Ta5d6ffthroughTa5d6ff Ta5d6ffcorepack.
Tff7b72requiredTb4b4b4: Ta5d6fffalse
Tff7b72typeTb4b4b4: Ta5d6ffstring
Tff7b72defaultTb4b4b4: Ta5d6ff"Ta5d6ff11.1.2Ta5d6ff"
Tff7b72python_versionTb4b4b4:
Tff7b72descriptionTb4b4b4: Ta5d6ffPythonTa5d6ff Ta5d6ffversionTa5d6ff Ta5d6ffusedTa5d6ff Ta5d6ffbyTa5d6ff Ta5d6fftheTa5d6ff Ta5d6ffdocsTa5d6ff Ta5d6ffbundler.
Tff7b72requiredTb4b4b4: Ta5d6fffalse
Tff7b72typeTb4b4b4: Ta5d6ffstring
Tff7b72defaultTb4b4b4: Ta5d6ff"Ta5d6ff3.14Ta5d6ff"
Tff7b72outputsTb4b4b4:
Tff7b72artifact_nameTb4b4b4:
Tff7b72descriptionTb4b4b4: Ta5d6ffNameTa5d6ff Ta5d6ffofTa5d6ff Ta5d6fftheTa5d6ff Ta5d6ffuploadedTa5d6ff Ta5d6fffrontendTa5d6ff Ta5d6ffartifact.
Tff7b72valueTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffjobs.build.outputs.artifact_nameTa5d6ff Ta5d6ff}}

Tff7b72permissionsTb4b4b4:
Tff7b72contentsTb4b4b4: Ta5d6ffread

Tff7b72envTb4b4b4:
Tff7b72FORCE_JAVASCRIPT_ACTIONS_TO_NODE24Tb4b4b4: Ta5d6fftrue
Tff7b72NODE_OPTIONSTb4b4b4: Ta5d6ff--max-old-space-size=8192

Tff7b72jobsTb4b4b4:
Tff7b72buildTb4b4b4:
Tff7b72nameTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6fffrontendTa5d6ff Ta5d6ffartifact
Tff7b72runs-onTb4b4b4: Ta5d6ffubuntu-latest
Tff7b72timeout-minutesTb4b4b4: Ta5d6ff30
Tff7b72permissionsTb4b4b4:
Tff7b72contentsTb4b4b4: Ta5d6ffread
Tff7b72outputsTb4b4b4:
Tff7b72artifact_nameTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffsteps.resolve.outputs.artifact_nameTa5d6ff Ta5d6ff}}
Tff7b72stepsTb4b4b4:
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCheckout
Tff7b72usesTb4b4b4: Ta5d6ffactions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffResolveTa5d6ff Ta5d6ffartifactTa5d6ff Ta5d6ffname
Tff7b72idTb4b4b4: Ta5d6ffresolve
Tff7b72envTb4b4b4:
Tff7b72REQUESTED_NAMETb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.artifact_nameTa5d6ff Ta5d6ff}}
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72set -euo pipefail
Tff7b72if [[ -n "${REQUESTED_NAME}" ]]; then
Tff7b72name="${REQUESTED_NAME}"
Tff7b72else
Tff7b72name="meshchatx-frontend-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}"
Tff7b72fi
Tff7b72echo "artifact_name=${name}" >> "${GITHUB_OUTPUT}"

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffSetTa5d6ff Ta5d6ffupTa5d6ff Ta5d6ffPythonTa5d6ff Ta5d6ff(forTa5d6ff Ta5d6ffdocsTa5d6ff Ta5d6ffbundler)
Tff7b72usesTb4b4b4: Ta5d6ffactions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
Tff7b72withTb4b4b4:
Tff7b72python-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.python_versionTa5d6ff Ta5d6ff}}

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffSetTa5d6ff Ta5d6ffupTa5d6ff Ta5d6ffNodeTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffpnpm
Tff7b72usesTb4b4b4: Ta5d6ff./.github/actions/setup-node-pnpm
Tff7b72withTb4b4b4:
Tff7b72node-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.node_versionTa5d6ff Ta5d6ff}}
Tff7b72pnpm-versionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.pnpm_versionTa5d6ff Ta5d6ff}}

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffInstallTa5d6ff Ta5d6fffrontendTa5d6ff Ta5d6ffdependencies
Tff7b72runTb4b4b4: Ta5d6ffpnpmTa5d6ff Ta5d6ffinstallTa5d6ff Ta5d6ff--frozen-lockfile

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffSyncTa5d6ff Ta5d6ffversionTa5d6ff Ta5d6ffmetadata
Tff7b72runTb4b4b4: Ta5d6ffpnpmTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffversion:sync

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6fffrontendTa5d6ff Ta5d6ff(vite)
Tff7b72runTb4b4b4: Ta5d6ffpnpmTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffbuild-frontend

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffBundleTa5d6ff Ta5d6ffReticulumTa5d6ff Ta5d6ffmanualTa5d6ff Ta5d6ff(offline)
Tff7b72runTb4b4b4: Ta5d6ffpnpmTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffbuild-docs

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffBundleTa5d6ff Ta5d6ffrepositoryTa5d6ff Ta5d6ffwheelsTa5d6ff Ta5d6ff(offlineTa5d6ff Ta5d6ffmirror)
Tff7b72runTb4b4b4: Ta5d6ffpnpmTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffbuild-repository-wheels

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffUploadTa5d6ff Ta5d6fffrontendTa5d6ff Ta5d6ffartifact
Tff7b72usesTb4b4b4: Ta5d6ffactions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
Tff7b72withTb4b4b4:
Tff7b72nameTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffsteps.resolve.outputs.artifact_nameTa5d6ff Ta5d6ff}}
Tff7b72pathTb4b4b4: Ta5d6ffmeshchatx/public
Tff7b72if-no-files-foundTb4b4b4: Ta5d6fferror
Tff7b72retention-daysTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.retention_daysTa5d6ff Ta5d6ff}}
Tff7b72include-hidden-filesTb4b4b4: Ta5d6fffalse


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────